//
//  FSupCommingWorkController.m
//  Trade
//
//  Created by 刘沿 on 16/4/5.
//  Copyright © 2016年 刘沿. All rights reserved.
//

#import "FSupCommingWorkController.h"

#import "GDataDefines.h"

@interface FSupCommingWorkController ()<UITableViewDelegate,UITableViewDataSource>

//当前页
@property (nonatomic,assign)NSInteger currentPage;

//获取的条数
@property (nonatomic,assign)NSInteger totalCounts;

//存放数据的数组
@property (nonatomic,strong)NSMutableArray *dataArray;


@end

@implementation FSupCommingWorkController



-(NSMutableArray *)dataArray{
    if (_dataArray == nil) {
        
        _dataArray = [NSMutableArray array];
    }

    return _dataArray;

}



- (void)viewDidLoad {
    [super viewDidLoad];
        self.edgesForExtendedLayout = UIRectEdgeNone;

//dispatch 发出通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshData) name:@"refreshOADetailData" object:nil];
    
   self.view.backgroundColor = [UIColor whiteColor];
   
    __weak typeof (self) weakSelf = self;
  

// 添加一个头部的刷新控件
 
    
    [self.tableView addHeaderWithCallback:^{
        
        weakSelf.currentPage = 1;
        
        [weakSelf loadData];
        
        
    }];
    
    //主动让下拉刷新头部控件进入刷新状态
    [self.tableView headerBeginRefreshing];
    
//    添加一个尾部的刷新控件
    
    [self.tableView addFooterWithCallback:^{
        
        if ((self.currentPage - 1) * KPageSize < self.totalCounts) {
            
            [weakSelf loadMore];
        }else {
        
            [weakSelf.tableView footerEndRefreshing];
            [weakSelf.view makeToast:@"没有更多了"];
        }
        
    }];
    
    
}


#pragma mark 刷新数据
-(void)refreshData{
    
    self.currentPage = 1;
    [self loadData]; //加载网络数据
}


#pragma mark-------加载网络数据
- (void)loadData{

    NSString *userID = [[NSUserDefaults standardUserDefaults] objectForKey:@"userId"];

    NSArray *array = @[@{@"userID":userID},@{@"page":[NSString stringWithFormat:@"%ld",self.currentPage]}];
    
    
    [HttpTools postWithURL:KexchgeneralURL arrays:array method:KTodoPagdMethod success:^(id JSON) {
        
        if (self.currentPage ==1) {
            [self.dataArray removeAllObjects];
        }
        
        self.dataArray = [self getDataList:[JSON dataUsingEncoding:NSUTF8StringEncoding]];
        
        NSLog(@"%@",self.dataArray.firstObject);
        
        [self.tableView reloadData];
        
        [self.tableView headerEndRefreshing];
        
        self.currentPage ++;
        
        if (self.dataArray.count == 0) {
            
            [self.view makeToast:@"暂时还没有代办文件哦"];
            
        }
        
    } failure:^(NSError *error) {
        
        NSLog(@"%@",error);
        
    }];


}

#pragma mark 加载更多
-(void)loadMore{
    NSString * userId = [[NSUserDefaults standardUserDefaults]objectForKey:@"userId"];
    NSArray * array = @[@{@"userId":userId},@{@"page":[NSString stringWithFormat:@"%ld",(long)self.currentPage]}];
    [HttpTools postWithURL:KexchgeneralURL arrays:array method:KTodoPagdMethod success:^(id JSON) {
        [self.dataArray addObjectsFromArray:[self getDataList:[JSON dataUsingEncoding:NSUTF8StringEncoding]]];
        self.currentPage++;
        [self.tableView footerEndRefreshing];
    } failure:^(NSError *error) {
        [self.tableView footerEndRefreshing];
    }];
    
}

#pragma mark-----解析服务器返回的二进制数据
-(NSMutableArray*)getDataList:(NSData*)data
{
    NSMutableArray * array = [NSMutableArray array];
    GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData: data options:0 error:nil];
    //获取根节点（<交换 >）
    GDataXMLElement *rootElement = [doc rootElement];
    //获取根节点下的节点（数据）
    NSArray *dataArray= [rootElement elementsForName:@"数据"];
    for (GDataXMLElement * elemtenData in dataArray) {
        NSArray * subElement = [elemtenData elementsForName:@"数据要素"];
        for (GDataXMLElement *data in subElement) {
            FSupCommingModel * model = [[FSupCommingModel alloc] init];
            GDataXMLElement * titleElement = [[data elementsForName:@"标题"] objectAtIndex:0];
            GDataXMLElement * timeElement = [[data elementsForName:@"接收时间"] objectAtIndex:0];
            GDataXMLElement * nameElement = [[data elementsForName:@"上一办理人"] objectAtIndex:0];
            GDataXMLElement * stateElement = [[data elementsForName:@"公文状态"] objectAtIndex:0];
            GDataXMLElement * formElement = [[data elementsForName:@"表单"] objectAtIndex:0];
             GDataXMLElement * bianjiElement = [[data elementsForName:@"是否编辑"] objectAtIndex:0];

            GDataXMLElement * fileIdElement = [[data elementsForName:@"标识"] objectAtIndex:0];
            model.title = [titleElement stringValue];
                        model.bianji = [bianjiElement stringValue];

            model.time = [timeElement stringValue];
            model.name = [nameElement stringValue];
            model.state = [stateElement stringValue];
            model.form = [formElement stringValue];
            model.fileId = [fileIdElement stringValue];
            [array addObject:model];
        }
    }
    
    //获取根节点下的数据
    NSArray *countArray= [rootElement elementsForName:@"控制"];
    for (GDataXMLElement * data in countArray) {
        GDataXMLElement * countElement = [[data elementsForName:@"条数"] objectAtIndex:0];
        NSString * counts = [countElement stringValue];
        self.totalCounts = [counts intValue];
    }
    
    self.title = [NSString stringWithFormat:@"待办文件(%lu)",(unsigned long)self.totalCounts];
    
    return array;
}


#pragma mark-------数据源和代理
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   // NSLog(@"%zd",self.dataArray.count);
    return self.dataArray.count;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    NSString *ReuseIdentifier = @"Cell";
    
    FSTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ReuseIdentifier];
    if (cell == nil) {
        
        cell = [FSTableViewCell TableViewCell];
    }
    
    cell.model = self.dataArray[indexPath.row];
    
    return cell;
    
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

    FSupCommingModel *model = self.dataArray[indexPath.row];

    CGFloat titleFloat = [FSHightTool heightbyString:model.title font:14 minsWidth:60];
    NSString *desstring = [NSString stringWithFormat:@"%@/%@/%@",model.time,model.state,model.name];
    CGFloat desfloat = 0;
    if (desstring.length > 25) {
        
         desfloat = [FSHightTool heightbyString:desstring font:12 minsWidth:60];
    }else {
        desfloat = [FSHightTool heightbyString:desstring font:14 minsWidth:60];
    }
    
    return titleFloat + desfloat + 20;
}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    FSupCommingModel *upModel = self.dataArray[indexPath.row];

//    if ([upModel.form isEqualToString:@"Swdoc"]) {
//        
//        FSDetailViewController * detailVC = (FSDetailViewController*)[self.storyboard instantiateViewControllerWithIdentifier:@"DetailVC"];
//        detailVC.isUnDoWork = YES;
//        detailVC.fileId = upModel.fileId;
//        [self.navigationController pushViewController:detailVC animated:YES];
//        
//    }else {
//    
//        FSDispatchViewController * detailVC = (FSDispatchViewController*)[self.storyboard instantiateViewControllerWithIdentifier:@"DispatchVC"];
//        detailVC.isUnDoWork = YES;
//        detailVC.fileId = upModel.fileId;
//        [self.navigationController pushViewController:detailVC animated:YES];
//    
//    
//    
//    }
    FSDispatchViewController * detailVC = (FSDispatchViewController*)[self.storyboard instantiateViewControllerWithIdentifier:@"DispatchVC"];
        if ([upModel.bianji isEqualToString:@"1"]) {
            detailVC.isUnDoWork = NO;

}else{
            detailVC.isUnDoWork = YES;


}
    detailVC.fileId = upModel.fileId;
    [self.navigationController pushViewController:detailVC animated:YES];

}

@end


















